// 导入数据库操作模块
const db = require('../db/index')

  

// 新增留言的路由
exports.addChatChat = (req, res) => {

  // 定义插入  新增留言的SQL 语句
  const sql = `insert into chat set ?`

  const commentsInfo = {
    ...req.body,
    // 留言发布时间
    chat_time: new Date(),
    // 留言作者的Id
    user_id: req.user.user_id,
    }
  // 执行插入 新增留言的 SQL 语句
  db.query(sql, commentsInfo, (err, results) => {
      // SQL 语句执行失败
      if (err) return res.cc(err)
    
      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('新增留言失败！')
    
      //新增留言成功
      res.cc('新增留言成功！', 0)
    })

}

  
//  获取留言列表
exports.chatCatesCates = (req, res) => {
  // 根据user_id和source_id 获取所有获取留言列表数据
  const sql = 'select * from chat where ((user_id=? and source_id=?) or (source_id=? and user_id=?))'
  db.query(sql, [req.user.user_id,req.body.source_id,req.user.user_id,req.body.source_id], (err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)
    
      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取留言列表成功！',
        data: results,
      })
    })
    
}


//获取留言人的列表   
exports.chatCatesUserCates = (req, res) => {
  // 根据user_id和source_id 获取所有获取留言列表数据
  const sql = 'select * from chat where (user_id=? or source_id=? )'
  db.query(sql, [req.user.user_id,req.user.user_id], (err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)
      let arr2 =[];
      results.forEach(item => {
        arr2.push(item.user_id);
        arr2.push(item.source_id);
      })
      let arr = Array.from(new Set(arr2))
      arr = arr.filter(item => {
        return item != req.user.user_id
      })
      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取留言列表成功！',
        data: arr,
      })
    })
    
}
